/**
 * 算法模板包含四个通用的辅助方法
 * 测试
 * asd
 * jkl
 * @author dc
 * @Classname BaseSort
 * @Date 2020/1/3 19:11
 */
public abstract class BaseSort {
    /**
     *  将i和j两个值交换
     * @param a 中间变量
     * @param i 较大的值
     * @param j 较小的值
     */
    protected static void exch(Comparable[] a, int i, int j) {
        Comparable t=a[i];
        a[i]=a[j];
        a[j]=t;
    }

    /**
     * 判断v是否比w小
     * @param v
     * @param w
     * @return  返回值为true,说明v比w小
     */
    protected static boolean less(Comparable v, Comparable w){
        return v.compareTo(w)<0;
    }

    /**
     * 打印数组
     * @param a 所需打印的数组
     */
    protected static void show(Comparable[] a){
        //在单行中打印数组
        for(int i=0;i<a.length;i++){
            System.out.print(a[i]+" ");
        }
    }

    /**
     * 是否排序
     * @param a 所需校验的数组
     * @return
     */
    protected static boolean isSorted(Comparable[] a){
        for(int i=0;i<a.length;i++){
            if(less(a[i],a[i-1])){
                return false;
            }
        }
        return true;
    }
}
